//
// Copyright (c) 2011 Alex Nesterenko
//

#include "nane/core/crt/POSIX/POSIXTimeImpl_.h"
#include <sys/time.h>

namespace nane 
{
    ////////////////////////////////////////////////////////////////////////////////////////////////
    Time::Implementation::Implementation()
    {
        
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    Time::Implementation::~Implementation()
    {
        
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    bool Time::Implementation::initialize()
    {
        return true;
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    void Time::Implementation::shutdown()
    {
        
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    uint32 Time::Implementation::getMilliseconds()
    {
        struct timeval tv;
        tv.tv_sec = 0;
        tv.tv_usec = 0;
        ::gettimeofday(&tv, NULL);
        return tv.tv_sec * 1000 + tv.tv_usec / 1000;
    }    
    ////////////////////////////////////////////////////////////////////////////////////////////////
}   // namespace nane
